package net.xxcxcxcx.xc_enhancedmob.render.boss_bar.column;

import net.minecraft.entity.mob.MobEntity;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.text.Text;
import net.xxcxcxcx.xc_enhancedmob.packet.dirty.DataTracking;
import net.xxcxcxcx.xc_enhancedmob.render.boss_bar.unit.CustomBossBar;
import org.jetbrains.annotations.Nullable;

import java.util.UUID;
import java.util.concurrent.CopyOnWriteArrayList;

/**
 * CustomBossBarColumn的接口
 */
public interface CustomBossBarColumn {
    void writeDrityCustomDataToNbt(NbtCompound nbt);

    void readDrityCustomDataFromNbt(NbtCompound nbt);

    void writeCustomDataToNbt(NbtCompound nbt);

    void readCustomDataFromNbt(NbtCompound nbt);

    void tick(MobEntity mobEntity);

    void addBossBar(CustomBossBar customBossBar);

    @Nullable CustomBossBar getBossBar(Text name);

    @Nullable CustomBossBar getBossBar(UUID uuid);

    CopyOnWriteArrayList<CustomBossBar> getBossBars();

    void setBossBars(CopyOnWriteArrayList<CustomBossBar> bossBars);

    boolean getDrity();

    void setDrity(boolean drity);

    DataTracking<Text> getName();

    void setName(Text name);

    DataTracking<Boolean> getShowname();

    void setShowname(boolean showname);

    DataTracking<UUID> getUuid();

    void setUuid(UUID uuid);

    DataTracking<Integer> getSortCount();

    void setSortCount(int Count);
}
